﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using BAL;
using DAL;
using DAL.Entities;
using System.Configuration;

namespace GrouponDesktop.PublicarCupon
{
    public partial class PublicarCupon : Form
    {

        public PublicarCupon()
        {
            InitializeComponent();


            label1.Text = ConfigurationSettings.AppSettings["actualDate"].ToString();
            this.gridCupones.CellContentClick += new DataGridViewCellEventHandler(btnClick);
            // Traemos todos los proveedores
            List<ProveedorEntity> proveedores = new List<ProveedorEntity>();
            //Agregamos una opcion nula al combobox
            ProveedorEntity prov = new ProveedorEntity();
            prov.VarRS = "<Ninguno>";
            prov.IntIdProveedor = 0;

            ProveedorBAL proProxy = new ProveedorBAL();
            proveedores = proProxy.GetProveedores();
            proveedores.Insert(0, prov);


            listadoProv.DisplayMember = "VarRS";
            listadoProv.ValueMember = "IntIdProveedores";
            listadoProv.DataSource = proveedores;
        }

        private void btnfiltrar_Click(object sender, EventArgs e)
        {
            CargarListado();
            
            
        }

        private void CargarListado()
        {
            //Traemos los cupones filtrados por proveedor
            List<PublicarEntityRes> grupons = new List<PublicarEntityRes>();
            PublicarBAL groProxy = new PublicarBAL();

            int IntProv = ((ProveedorEntity)listadoProv.SelectedValue).IntIdProveedor;

            PublicarEntityReq gruponInfo = new PublicarEntityReq();
            gruponInfo.actualDate = DateTime.Parse(ConfigurationSettings.AppSettings["actualDate"].ToString());
            if (0 == IntProv)
            {
                grupons = groProxy.GetGrouponAPublicar(gruponInfo);
            }
            else
            {
                gruponInfo.IntIdProveedor = IntProv;
                grupons = groProxy.GetGrouponAPublicarByProveedor(gruponInfo);
            }

            var algo = (from item in grupons select new { item.VarCodigo, item.VarDescripcion });
            gridCupones.DataSource = grupons;
        }

        public void btnClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int selectedRowIndex = int.Parse(e.RowIndex.ToString());
                if ((this.gridCupones.Columns[e.ColumnIndex].Name.ToString() == "btnPublicar") && (gridCupones.CurrentRow != null))
                {
                    DAL.Entities.PublicarEntityRes item = (DAL.Entities.PublicarEntityRes)gridCupones.CurrentRow.DataBoundItem;
                    PublicarBAL groProxy = new PublicarBAL();
                    groProxy.PublicarGrupon(item);
                    CargarListado();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ha ocurrido un error: " + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        private void PublicarCupon_Load(object sender, EventArgs e)
        {

        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            this.Close();
 

        }
    }
}
